package org.hy.service.group;

import java.util.List;

import org.apache.ibatis.annotations.Param;
import org.hy.domain.User;
import org.hy.domain.group.GMember;
import org.hy.domain.group.Group;
import org.hy.persistence.group.GMemberMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

/**
 * 小组成员服务类
 * @author xwm
 *
 */
@Service
public interface IGMemberService {
	
	/**
	 * 添加组员
	 * @param gMember
	 * @return
	 */
	int addGMember(GMember gMember);
	
	/**
	 * 删除组员
	 * @return
	 */
	int deleteGMember(int idGmember);
	
	/**
	 * 查找小组成员
	 * @param id成员id
	 * @return
	 */
	GMember findGMemberById(int id);
	
	/**
	 * 根据用户id和小组id查找小组成员id
	 * @param uid
	 * @param gid
	 * @return
	 */
	GMember findGMemberByUidAndGid(int uid,int gid);
	
	/**
	 * 查找用户加入的小组
	 * @param uid 用户id
	 * @param offset 偏移量
	 * @param size 数目
	 * @return 小组列表
	 */
	List<Group> findJoinedGroupByUid(int uid,int offset,int size);
	
	/**
	 * 查找最近加入的小组成员
	 * @param gid
	 * @return
	 */
	List<User> findRecentlyJoinedGMember(int gid,int offset,int size);
	
	/**
	 * 更新组员的状态
	 * @param gMember
	 * @return
	 */
	int updateGMemberStatus(GMember gMember);
	
	/**
	 * 统计一组小组的成员数
	 * @param gids 小组数组
	 * @return 小组成员数列表
	 */
	List<Integer> countGMember(int[] gids);
	
}
